Support NumPy 2.x 64bit integers on Windows - #551
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #551 +/- ##
=======================================
Coverage 27.44% 27.44%
=======================================
Files 152 152
Lines 28151 28151
Branches 8419 8419
=======================================
Hits 7725 7725
Misses 17958 17958
Partials 2468 2468 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@amontoison should we be worried about the failing Poison tests? |
|
Nope, it is like |
|
The failure is in slblt_factor.F90:2350, which is Thus just another case of omp not tidying up after itself, I believe; this is a know issue with omp that makes speculative mallocs. |
|
Thanks both, in that case are we happy to merge this and make a new bugfix release of GALAHAD? |
|
It is fine for me @jfowkes. |
|
Thanks @amontoison, it is more for the Python wheels than anything else. |
|
OK for me, too. I won't be able to sort out the expo issues, although I suspect it is simply that the expo C tests are using the default sparse solver, and not one we know works. Normally we have something like strcpy(control.trb_control.trs_control.symmetric_linear_solver,"sytr ");blah, blah, blah to set subproblem linear solvers, but I don't think we do in expo C tests. We will need the C equivalent of control%SSLS_control%symmetric_linear_solver = symmetric_linear_solver
control%TRU_control%TRS_control%definite_linear_solver &
= definite_linear_solver
control%TRU_control%TRS_control%symmetric_linear_solver &
= symmetric_linear_solverwhere CHARACTER ( len = 5 ) :: symmetric_linear_solver = 'sytr '
CHARACTER ( len = 5 ) :: definite_linear_solver = 'potr 'You might try that (both in expo/C/expot.c and expotf.c) |
|
Thanks both, in that case I propose a v5.5.2 release to fixup and update the Python wheels and add SBLT. I don't think the flaky expo test should hold this up as the problem seems to be with the test setup and this should be very easy to fix (I would do this in time for the release but unfortunately I am away at a workshop all next week). |
|
@jfowkes The PyPI compilation failed for the release 5.5.2: |
NumPy 2.x has changed the default integer type on Windows from 32bit (NPY_LONG) to 64bit (NPY_INTP):
https://numpy.org/devdocs/numpy_2_0_migration_guide.html#windows-default-integer
This PR fixes our Python interfaces to support both the old NumPy 1.x 32bit integer and the new Numpy 2.x 64bit integer.
I also suggest we do a new bugfix release of GALAHAD v5.5.2 after merging this PR so that we can update PyPI with Python 3.14 wheels (precompiled binaries) since 3.14 is the current stable release of Python and we should really be supporting it:
https://devguide.python.org/versions/